package java_0720;

import java.util.Scanner;
/**
 * 打印一个*表示的菱形
 *       *
 *      ***
 *     *****
 *    *******
 *     *****
 *      ***
 *       *
 *       
 * @author hyx
 */
public class Homework3 {
	/**
	 * 主函数
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println("你要打印一个几行的菱形？");
		Scanner input = new Scanner(System.in);
		int rowNum = input.nextInt(); //输入需要的行数
		input.close();
		int triangleNum =  (rowNum - 1) / 2 ;
		//行数必须是一个奇数而且最小的菱形有三行
		if((rowNum % 2 != 0) && rowNum >= 3) {	
			/*
			 * 菱形的打印分为三部分
			 * 第一部分是1至triangleNum行，这部分的星星组成了一个正的三角形
			 * 第二部分是triangleNum + 1至rowNum行， 这部分的星星组成了一个倒的三角形
			 */
			//这是第一部分
			for(int i = 0; i < triangleNum + 1; i++) {
				int blankNum = rowNum - 1 - i; //需要打印的空格数
				int starNum = 2 * i + 1; //需要打印的星星数
				//打印blankNum个空格
				while(blankNum > 0) {
					System.out.print(" ");
					blankNum--;
				}
				//打印starNum个星星
				while(starNum > 0) {
					System.out.print("*");
					starNum--;
				}
				//换行
				System.out.println();
			}
			//这是第二部分
			for(int i = triangleNum - 1; i >= 0; i--) {
				int blankNum = rowNum - 1 - i; //需要打印的空格数
				int starNum = 2 * i + 1; //需要打印的星星数
				//打印blankNum个空格
				while(blankNum > 0) {
					System.out.print(" ");
					blankNum--;
				}
				//打印starNum个星星
				while(starNum > 0) {
					System.out.print("*");
					starNum--;
				}
				//换行
				System.out.println();
			}
			
		}else{
			System.out.println("这不是一个合适的行数");
		}
	}
}
